Revert "html update"
[clinton/website/site/unknownlamer.org.git] / Site Software.html
1 <?xml version="1.0" encoding="utf-8" ?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 <html xmlns="http://www.w3.org/1999/xhtml">
5 <head>
6 <title>Site Software</title>
7 <meta name="generator" content="muse.el" />
8 <meta http-equiv="Content-Type"
9 content="text/html; charset=utf-8" />
10 <meta name="viewport"
11 content="width=device-width, initial-scale=1.0" />
12 <link href="https://feeds.unknownlamer.org/rss/site-updates"
13 rel="alternate" type="application/rss+xml" title="Updates Feed" />
14
15 <link rel="stylesheet" href="default.css" />
16 </head>
17 <body>
18 <h1>Site Software</h1>
19 <div class="contents">
20 <dl>
21 <dt>
22 <a href="#sec1">Basic Setup</a>
23 </dt>
24 <dt>
25 <a href="#sec2">Scripts</a>
26 </dt>
27 <dd>
28 <dl>
29 <dt>
30 <a href="#sec3">Book Database</a>
31 </dt>
32 <dt>
33 <a href="#sec4">RSS Feed</a>
34 </dt>
35 </dl>
36 </dd>
37 <dt>
38 <a href="#sec5">License</a>
39 </dt>
40 </dl>
41 </div>
42
43
44 <!-- Page published by Emacs Muse begins here -->
45 <h2><a name="sec1" id="sec1"></a>
46 Basic Setup</h2>
47
48 <p class="first">I work on the static content of the site using <a href="http://mwolson.org/projects/EmacsMuse.html">Emacs Muse</a>. My muse
49 configuration is pretty long and available in my
50 <a href="http://unknownlamer.org/darcsweb/browse?r=site-emacs;a=headblob;f=/init.d/muse.el">site-emacs repository</a>. The site itself exists in a <a href="http://unknownlamer.org/darcsweb/browse?r=unknownlamer.org;a=summary">darcs repository</a>
51 which is a fork of the source repository I edit locally&mdash;the source
52 repository contains muse/image files while the site repository
53 contains html updates as a separate series of patches.</p>
54
55 <p>This provides a very nice editing environment and makes publishing
56 fairly easy&mdash;I push edits from my laptop to my workstation and then
57 off to <a href="http://hcoop.net">HCoop</a> with the html updates. Almost no effort is spent dealing
58 with some dumb web interface or other pointless things making it much
59 easier for me to just write things and toss them up onto the web.</p>
60
61
62 <h2><a name="sec2" id="sec2"></a>
63 Scripts</h2>
64
65 <p class="first">There are a few scripts and templates in the <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=summary">darcsweb::site-support</a>
66 repository that I use to update the
67 site. <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=headblob;f=/update.sh">darcsweb::site-support/update.sh</a> automates the process of
68 sending patches off to the server via afs.</p>
69
70 <h3><a name="sec3" id="sec3"></a>
71 Book Database</h3>
72
73 <p><a href="Book%20List.html">Book List</a> is autogenerated by <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=headblob;f=/books.lisp">darcsweb::site-support/books.lisp</a> which
74 reads a template and a small sexp <em>database</em> of book entries and spits
75 out a muse file which is not kept under VC. This works well for me
76 currently, but I intend to eventually <em>upgrade</em> this simple system to an
77 <a href="http://common-lisp.net/project/elephant/">Elephant</a> object database with a <a href="http://common-lisp.net/project/mcclim/">CLIM</a> frontend for editing
78 entries. I'll probably end up writing a minimal database manager for
79 the sexp based system first.</p>
80
81
82 <h3><a name="sec4" id="sec4"></a>
83 RSS Feed</h3>
84
85 <p class="first">The site rss feed is generated by <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=headblob;f=/rss.lisp">darcsweb::site-support/rss.lisp</a>. It
86 fetches the darcs xml changelog for interesting files and then spits
87 out a tolerable feed with automagically generated links from <code>*.muse</code> to
88 <code>*.html</code>. A <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=headblob;f=/update-rss-binary">dumped binary</a> is run from a darcs hook on the main
89 repository that handily updates the feed whenever I commit.</p>
90
91 <p><code>apply posthook update-site-rss
92 apply run-posthook</code></p>
93
94 <p>Boring old Apache is used to serve up the generated feed. The feed
95 stays updated when I update, and Apache deals with properly letting
96 readers know when the file last changed and whatnot.</p>
97
98
99
100 <h2><a name="sec5" id="sec5"></a>
101 License</h2>
102
103 <p class="first">All of the scripts used to generate the site are in the public domain
104 unless otherwise mentioned in the files themselves. To use them
105 anywhere else would require modification, but a few chunks of code
106 could be generally useful for other things.</p>
107
108
109 <!-- Page published by Emacs Muse ends here -->
110
111 <p class="cke-buttons">
112 <!-- validating badges, any browser, etc -->
113 <a href="https://validator.w3.org/check/referer"><img
114 src="https://www.w3.org/Icons/valid-xhtml10"
115 alt="Valid XHTML 1.0!" /></a>
116
117 <a href="https://www.anybrowser.org/campaign/"><img
118 src="img/buttons/w3c_ab.png" alt="[ Viewable With Any Browser
119 ]" /></a>
120
121 <a href="https://www.debian.org/"><img
122 src="img/buttons/debian.png" alt="[ Powered by Debian ]" /></a>
123
124 <a href="https://hcoop.net/">
125 <img src="img/buttons/hcoop.png"
126 alt="[ Hosted by HCoop]" />
127 </a>
128
129 <a href="https://www.fsf.org/register_form?referrer=114">
130 <img src="img/buttons/fsf_member.png"
131 alt="[ FSF Associate Member ]" />
132 </a>
133 </p>
134
135 <p class="cke-footer">'Asked whether it is a good thing that the course of our
136 civilization being largely directed by gigantic immortal,
137 belligerent, unsleeping multiheaded tax-avoiding parakeets whose
138 unnatural lusts can never be sated, Dr. Larkey declined to
139 comment, noting that "corporations have the rights of personhood
140 in this country" and that "it is not my place to criticize the
141 law".'
142 </p>
143 <p class="cke-timestamp">Last Modified:
144 January 21, 2013</p>
145 </body>
146 </html>